package main

//
//func main() {
//	//先进后出
//	//defer后面必须是函数或方法的调用，不能是语句
//	defer func() {
//		fmt.Println("hello")
//	}()
//
//	defer func() {
//		fmt.Println("gun")
//	}()
//
//	fmt.Println("function")
//
//	//后续a++不会影响defer语句的最后输出结果
//	a := 0
//	defer func() {
//		fmt.Println(a)
//		a++
//		fmt.Println(a)
//	}()
//	a++
//	fmt.Println(a)
//
//	//若defer语句在return语句之后则会因为defer没有注册不会执行
//	//主动调用os.Exit(int)退出进程时，defer将不再被执行
//
//	os.Exit(0)
//
//	//defer的好处在于可以在一定程度上避免资源泄露
//
//}
